class FileCache
{
    // 缓存文件存储的目录
    private static $cacheDir = 'cache/';
 
    // 创建缓存目录（如果不存在）
    public static function init()
    {
        if (!is_dir(self::$cacheDir)) {
            mkdir(self::$cacheDir, 0777, true);
        }
    }
 
    // 设置缓存数据
    public static function set($key, $value, $ttl = 3600)
    {
        self::init();
 
        $cacheFile = self::$cacheDir . md5($key) . '.cache';
        $data = [
            'value' => $value,
            'expires' => time() + $ttl,
        ];
 
        // 使用json_encode将数据转换为JSON字符串，并确保中文字符被正确处理
        $jsonData = json_encode($data, JSON_UNESCAPED_UNICODE);
        file_put_contents($cacheFile, $jsonData);
    }
 
    // 获取缓存数据
    public static function get($key)
    {
        self::init();
 
        $cacheFile = self::$cacheDir . md5($key) . '.cache';
 
        if (!file_exists($cacheFile)) {
            return false;
        }
 
        $jsonData = file_get_contents($cacheFile);
        $data = json_decode($jsonData, true); // 将JSON字符串转换为PHP数组
 
        if ($data === null || !isset($data['expires']) || $data['expires'] < time()) {
            // 删除过期的缓存文件
            unlink($cacheFile);
            return false;
        }
 
        return $data['value'];
    }
 
    // 删除缓存数据
    public static function delete($key)
    {
        self::init();
 
        $cacheFile = self::$cacheDir . md5($key) . '.cache';
 
        if (file_exists($cacheFile)) {
            unlink($cacheFile);
        }
    }
 
    // 清除所有缓存数据
    public static function clear()
    {
        self::init();
 
        $files = glob(self::$cacheDir . '*.cache');
        foreach ($files as $file) {
            unlink($file);
        }
    }
}
 
// 使用示例
//FileCache::set('example_key', '这是一个中文示例', 60); // 设置缓存，有效期60秒
echo FileCache::get('example_key'); // 输出: 这是一个中文示例